#pragma once

#include "public/build.h"
#include "graphics/resources/ishader.h"
#include "graphics/resources/itexture.h"

namespace renderit {
	namespace graphics {

		class idevice_context;

		class idevice
		{
		public:
			idevice() {}
			virtual ~idevice() {}

		public:
			virtual void * create_vb(const void * data, uint32 size, uint32 stride) { return nullptr; }

			virtual void * create_ib(const void * data, uint32 size, bool) { return nullptr; }
			
			virtual ishader * create_vs(const void * data, uint32 size) { return nullptr; }

		// Texture
		public:
			virtual itexture * create_depthstencil(uint32 width, uint32 height) { return nullptr; }

		public:
			virtual idevice_context * get_context() { return nullptr; }
		};

	}
}